This invention relates to industrial control systems including programmable controllers and more particularly to a highly distributed industrial control system and a method for programming the same.
Industrial controllers such as those described in U.S. Pat. Nos.: 3,810,118; 3,942,158; 4,165,534; and 4,442,504 are specialized high speed computers that may be connected to industrial equipment, such as automated assembly lines or machine tools, to operate such equipment in accordance with a stored control program. The stored program includes instructions, which when executed, examine the conditions of selected inputs to the controller from sensing devices on the controlled equipment, or which energize or de-energize selected outputs connected to actuators on the controlled equipment.
The inputs and outputs to the industrial controller may be binary signals such as those from or to switches or solenoids, or may be analog signals describing process data values such as motion, temperature, time or other quantities. Analog signals are typically converted to digital form for processing by the industrial controller.
Industrial controllers may be programmed by means of special control oriented languages. A common language is "ladder logic" language in which the control program is represented graphically as ladders whose vertical rails are a virtual power source and power return and whose rungs are series and parallel connected virtual contacts and virtual relay coils. The contacts represent data values for example from inputs to the controller from the controlled machinery. The coils represent outputs to the controlled machinery. Advanced ladder logic languages also include arithmetic and other advanced commands represented graphically within the ladder logic program. Such controllers and languages are understood in the art.
In a centralized controller architecture, a single controller may communicate with one or more remotely located "I/O racks" communicating with the controller by means of a digital communication link. The I/O racks collect inputs and outputs from and to the controlled equipment and provide interface circuitry to handle different signal types.
For certain control applications, the single controller of the centralized control architecture may be augmented or supplemented by many separate processor modules each executing a portion of the control program in a distributed control architecture. Distributed processing can improve the response time of the industrial controller by providing effective parallel process and by reducing the time it takes for remote I/O racks to communicate with a central controller. Distributed processing may also reduce installation costs. U.S. Pat. Nos. 5,452,201 and 5,530,643, assigned to the assignee of the present invention and hereby incorporated by reference, describe a highly distributed industrial control system and a method of programming the distributed control system by dividing a control program among the various processor modules for independent execution.
In the process of distributing the control program among the processor modules, parts of the control program may be duplicated and sent to more than one processor module and logically connected sections of the control program may be broken apart and sent to different control modules based on considerations of processing capability, network traffic concerns, and efficiency in execution. Accordingly, the partitioned program may bear little resemblance to the originally written control program
Unlike with a centralized control architecture where the control program is centrally located and may be easily displayed and edited with a distributed control system, there is no centralized repository of the unpartitioned control program. Although a copy of the pre-partitioned control program will normally be retained on the programming terminal used to partition the original control program among the various processor modules, that programming terminal may not be readily available. Further, in systems that allow editing of the program portions at the particular processor modules, the original control program may no longer be valid.